function getNameMonth(numberOfMonth) {
var culture = document.getElementById('culture-code').value || '';
var name = '';
const months = {
culturees: {
0: 'enero',
1: 'febrero',
2: 'marzo',
3: 'abril',
4: 'mayo',
5: 'junio',
6: 'julio',
7: 'agosto',
8: 'septiembre',
9: 'octubre',
10: 'noviembre',
11: 'diciembre'
},
cultureen: {
0: 'january',
1: 'february',
2: 'march',
3: 'april',
4: 'may',
5: 'june',
6: 'july',
7: 'august',
8: 'september',
9: 'october',
10: 'november',
11: 'december'
}
};
switch (culture.toLowerCase()) {
case 'en-us':
name = months.cultureen[numberOfMonth];
break;
default:
name = months.culturees[numberOfMonth];
}
return name;
}
function getNameDay(numberOfDay) {
var culture = document.getElementById('culture-code').value || '';
var name = '';
const days = {
culturees: {
0: 'domingo',
1: 'lunes',
2: 'martes',
3: 'miércoles',
4: 'jueves',
5: 'viernes',
6: 'sábado'
},
cultureen: {
0: 'sunday',
1: 'monday',
2: 'tuesday',
3: 'wednesday',
4: 'thursday',
5: 'friday',
6: 'saturday'
}
};
switch (culture.toLowerCase()) {
case 'en-us':
name = days.cultureen[numberOfDay];
break;
default:
name = days.culturees[numberOfDay];
}
return name;
}
function getDateTimeWithFormat(datetime) {
var culture = document.getElementById('culture-code').value || '';
var text = '';
switch (culture.toLowerCase()) {
case 'en-us':
text = getNameDay(datetime.getDay()) + ' ' + getNameMonth(datetime.getMonth()) + ' ' + datetime.getDate() + ', ' + datetime.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
break;
default:
text = getNameDay(datetime.getDay()) + ' ' + datetime.getDate() + ' de ' + getNameMonth(datetime.getMonth()) + ', ' + datetime.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
}
return text;
}
function loader(flag) {
$(".loader__content")[0].innerHTML = $("#splash_text").val();
if (flag) {
$('.loader__fullpage').addClass("loader__active");
} else {
$('.loader__fullpage').removeClass("loader__active");
}
}
function payLoader(flag) {
$(".loader__content")[0].innerHTML = $("#splash_text_pay").val();
if (flag) {
$('.loader__fullpage').addClass("loader__active");
} else {
$('.loader__fullpage').removeClass("loader__active");
}
}
function hideAlert()
{
$("#ValidationAlert").hide();
$("#AnnouncementAlert").hide();
$("#MessageAlert").text("");
if (activePayMethod ==='multipagos') {
hideAlertSecureLink();
}
}
function showValidationAlert()
{
$("#ValidationAlert").show();
if ($("#MessageAlert").html() == "")
{
$("#AnnouncementAlert").hide();
}
}
function showMessageAlert(message)
{
if (message != undefined && message != "") {
$("#ValidationAlert").hide();
$("#AnnouncementAlert").show();
$("#MessageAlert").html(message);
}
}
var activePayMethod = "";
function showPayMethod(option,uri="") {
switch (option)
{
case 'efecty':
CreateEfectyTransaction(uri);
break;
case 'multipagos':
ActivateFirstTimeSecureLink();
break;
case 'bancolombia':
GetAcceptanceToken('ThirdPartyCheckoutTransactions');
break;
default:
break;
}
$("#pay-method-list").hide();
$("#pay-method-details").show();
activePayMethod = option;
setPayMethodHiddenFields()
$("#" + activePayMethod).show();
}
function setPayMethodHiddenFields() {
switch (activePayMethod)
{
case "creditCard":
$('#payMethod').val(1);
$('#payProcessOptionType').val(1);
$('#paymentGatewayPayType').val(1);
break;
case "agencyVirtualCards":
$('#payMethod').val(1);
$('#payProcessOptionType').val(1);
$('#paymentGatewayPayType').val(2);
break;
case "multipagos":
$('#payMethod').val(1);
$('#payProcessOptionType').val(1);
$('#paymentGatewayPayType').val(3);
break;
case "redirectionOption":
$('#payMethod').val(1);
$('#payProcessOptionType').val(1);
$('#paymentGatewayPayType').val(4);
break;
case "pse ":
$('#payMethod').val(2);
$('#payProcessOptionType').val(4);
$('#paymentGatewayPayType').val(5);
break;
case "redemptionPointsCreditCard":
$('#payMethod').val(1);
$('#payProcessOptionType').val(8);
$('#paymentGatewayPayType').val(1);
activePayMethod = "creditCard";
break;
case "wallet":
$('#payMethod').val(20);
$('#payProcessOptionType').val(0);
$('#paymentGatewayPayType').val(1);
activePayMethod = "wallet";
break;
case "bancolombia":
$('#payMethod').val(22);
$('#payProcessOptionType').val(0);
$('#paymentGatewayPayType').val(1);
activePayMethod = "bancolombia";
break;
}
}
function showMethodList()
{
hideAlert();
$("#" + activePayMethod).hide();
$("#pay-method-details").hide();
$("#pay-method-list").show();
}
function getCheckedValue(name, defaultValue) {
var e = document.getElementsByName(name);
for (var i = 0; i < e.length; i++) {
if (e[i].checked) return e[i].value;
}
return (defaultValue ? defaultValue : '');
}
function getValueOrDefault(name, defaultValue) {
var e = document.getElementsByName(name);
if (e.length == 0)
return (defaultValue ? defaultValue : '');
return e[0].value;
}
$(document).ready(function () {
//Summary - Expandir
$(".summary .summary__collapsed .summary-heading .expand").on("click", function (e) {
e.preventDefault();
$(this).parent().parent().parent().parent().find(".summary__expanded").addClass("is--show");
$(this).parent().parent().parent().parent().find(".summary__collapsed").addClass("is--hidden");
});
//Summary - Ocultar
$(".summary .summary__expanded .summary-heading .expand").on("click", function (e) {
e.preventDefault();
$(this).parent().parent().parent().removeClass("is--show");
$(this).parent().parent().parent().parent().find(".summary__collapsed").removeClass("is--hidden");
});
//Radio Button Accordeon
$('.form-check-dropdown .form-check__input').change(function () {
if ($(this).is(":checked")) {
$('.form-textfield-reason').removeClass("is--hidden");
} else {
$('.form-textfield-reason').addClass("is--hidden");
}
});
//ícono de tipo/franquicia de tarjeta
$("#tc-number-div input").payment('formatCardNumber', {
callback: function (result) {
if (result == null) {
$('#tc-number-div input').removeClass('error');
$('#tc-number-div .icon-bank').removeClass().addClass('icon-bank ');
} else if (result["class"] == 'unknown') {
$('#tc-number-div .icon-bank').removeClass().addClass('icon-bank ');
$('#tc-number-div input').addClass('error');
} else {
//Muestra icono ***************************************************************************
$('#tc-number-div input').removeClass('error');
$('#tc-number-div .icon-bank').removeClass().addClass('icon-bank icon-bank-' + result["class"]);
}
}
});
//campo de expiración
$("#cardExpired").on("keyup", expiryDay);
$("#cardExpired").change(setExpiration);
//Comportamiento de los modales/dropdown del booker
//En móvil no se activa el focus en los inputs
if ($(window).width() < 576) {
$(".modal-mobile-header button").on("click", function () {
$(this).parent().parent().removeClass("modal-mobile-show");
});
$("div[class^='booker-section-'] > .form-group").on("click", function (e) {
$(this).parent().find(".modal-mobile").addClass("modal-mobile-show");
$(this).find(".form-text-field input[type=text]").attr('readonly', true);
$(this).find(".form-text-field input[type=text]").blur();
$(this).parent().find(".modal-mobile .modal-mobile-content .form-group .form-text-field input[type=text]").focus();
});
}
//En escritorio sí funciona el focus
else {
$(".booker-section-item .form-group").on("click", function (e) {
$(this).find(".form-text-field input[type=text]").atrr('readonly', false);
$(this).find(".form-text-field input[type=text]").focus();
});
$(".booker-section-item .form-group .form-text-field input[type=text]").focusin(function () {
$(this).parent().parent().parent().find(".modal-mobile").addClass("modal-mobile-show");
}).focusout(function () {
$(this).parent().parent().parent().find(".modal-mobile").removeClass("modal-mobile-show");
});
}
});
var expiryDay = function () {
var inputChar = String.fromCharCode(event.keyCode);
var code = event.keyCode;
var allowedKeys = [8];
if (allowedKeys.indexOf(code) !== -1) {
return;
}
event.target.value = event.target.value
.replace(/^([1-9]\/|[2-9])$/g, "0$1/")
.replace(/^(0[1-9]|1[0-2])$/g, "$1/")
.replace(/^([0-1])([3-9])$/g, "0$1/$2")
.replace(/^(0?[1-9]|1[0-2])([0-9]{2})$/g, "$1/$2")
.replace(/^([0]+)\/|[0]+$/g, "0")
.replace(/[^\d\/]|^[\/]*$/g, "")
.replace(/\/\//g, "/");
};
function setExpiration() {
var splitValues = $("#cardExpired").val().split('/');
$("#cardMonthExpired").val(splitValues[0]);
$("#cardYearExpired").val("20" + splitValues[1]);
}
var handleSuccessValid = function (o,processpy = '') {
var isValid = true;
var result = xmlToString(o.documentElement.childNodes);
var json = $.parseJSON(result);
var brokenRules = json.brokenRules;
$(".has-danger").removeClass(" has-danger");
$(".form-text").hide();
showMessageAlert("")
hideAlert();
if (brokenRules.length != 0) {
for (var i = 0; i < brokenRules.length; i++) {
try {
if (brokenRules[i].isValid) {
$("#" + brokenRules[i].name).parent().parent().removeClass(" has-danger");
$("#" + brokenRules[i].name).parent().parent().find(".form-text").hide();
$("#" + brokenRules[i].name).parent().parent().find(".form-text")[0].innerHTML = "";
} else {
if (brokenRules[i].name == 'paymentOptionsError') {
showMessageAlert(brokenRules[i].explainMessage);
} else {
$("#" + brokenRules[i].name).parent().parent().addClass(" has-danger");
$("#" + brokenRules[i].name).parent().parent().find(".form-text").show();
if ($($("#" + brokenRules[i].name).parent().parent().find(".form-text")[0]).is('small')) {
$("#" + brokenRules[i].name).parent().parent().find(".form-text")[0].innerText = brokenRules[i].message.replace("
", "").replace("", "");
}
else {
$("#" + brokenRules[i].name).parent().parent().find(".form-text")[0].innerHTML = brokenRules[i].message.replace("", "").replace("", "");
}
showValidationAlert();
}
isValid = false;
}
} catch { }
}
}
var partialAmount = parseFloatWithCulture($('#partialAmount').val());
if (isValid) {
$('#partialAmount').val(partialAmount);
hideAlert();
$("#formProcessPayment").attr('action', processpy != '' ? processpy : 'procesar-pago');
$("#formProcessPayment").submit();
} else {
$("#button-creditcard")[0].disabled = false;
jQuery("input[name*='validatePayForms']").each(function () { $(this).disabled = false; })
payLoader(false);
document.body.scrollTop = 0; // For Safari
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
}
};
var handleFailureValid = function (o) {
$("#button-creditcard")[0].disabled = false;
jQuery("input[name*='validatePayForms']").each(function () { $(this).disabled = false; })
showValidationAlert();
payLoader(false);
document.body.scrollTop = 0; // For Safari
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
};
function xmlToString(childNodes) {
var result = '';
for (var i = 0; i < childNodes.length; i++) {
result += childNodes[i].nodeValue;
}
return result;
}
function onPaymentPlanClick(sumarizedPaymentPlan) {
$("#paymentPlan").val(sumarizedPaymentPlan);
$('#redemptionPointsBankId').val(-1000)
$('.ap_points').find(".form-text").hide();
$('#pointRedemption').val(false);
}
function onPointsPaymentPlanClick(elem) {
var bankId = $(elem).val();
$('#redemptionPointsBankId').val(bankId);
$('#pointRedemption').val(true);
$("#paymentPlan").val(1);
activePayMethod = "redemptionPointsCreditCard";
setPayMethodHiddenFields();
$(elem).parents('.ap_points').find(".form-text").show();
}
function isValidCVU(uri = '',thirdpartyuri = '') {
var cvuValidation = {
"Amount": parseFloat($('#amount').val()),
"PartialAmountValue": parseFloatWithCulture($('#partialAmountCVU').val()),
"Token": $('#token').val(),
"MasterLocatorId": document.getElementById("masterLocatorId").value,
"Currency": $('#currency').val(),
"IdentityDocumentType": $('#identityDocumentTypeCVU').val(),
"IdentityDocumentNumber": $('#identityDocumentNumberCVU').val(),
"DiscalimerAccepted": document.getElementById('cvuAgreement').checked ? true : false
}
var urival = uri != '' ? uri : '/ValidateCVU';
$.ajax({
type: "POST",
url: urival,
data: JSON.stringify(cvuValidation),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (response) {
if (handleSuccessPath(response))
{
if(thirdpartyuri != ''){
CreateCVUTransaction("redirecting",thirdpartyuri);
}
else{
CreateCVUTransaction("redirecting");
}
}
},
error: function (response) {
handleFailurePath(response)
return false;
}
});
}
function CreateCVUTransaction(messageText,uri = '') {
payLoader(true);
var button = $('#cvuButton');
button.prop('disabled', true);
var currentButtonText = button.text();
button.text(messageText);
var partialAmount = parseFloatWithCulture($('#partialAmountCVU').val())
var json = JSON.parse(document.getElementById("thirdPartyCheckoutsInformation").value)
var identityDocumentType = document.getElementById("identityDocumentTypeCVU").value
var identityDocumentNumber = document.getElementById("identityDocumentNumberCVU").value
var body = {
"MasterLocatorId": document.getElementById("masterLocatorId").value,
"Amount": partialAmount,
"PaymentProcessOptionType": json["CVU"].PaymentProcessOptionType,
"Provider": json["CVU"].Provider,
"SiteReturnUrl": json["CVU"].SiteReturn,
"SpecificProviderDetails": JSON.stringify({ "IdentityDocumentType": identityDocumentType, "IdentityDocumentNumber": identityDocumentNumber })
};
var uridest = uri != '' ? uri : '/CreateThirdPartyCheckoutTransaction';
$.ajax({
type: "POST",
url: uridest,
data: JSON.stringify(body),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (response) {
if (response.ResponseCode == 0) {
hideAlert()
if (response.ProviderUrl != undefined && response.ProviderUrl != "") {
window.location.href = response.ProviderUrl
} else {
payLoader(false);
button.text(currentButtonText);
button.prop('disabled', false);
showMessageAlert(document.getElementById("thirdPartyCheckoutGenericErrorMessage").value)
}
}
else {
payLoader(false);
button.text(currentButtonText);
button.prop('disabled', false);
showMessageAlert(response.ResponseMessage)
}
},
error: function (response) {
payLoader(false);
button.text(currentButtonText);
button.prop('disabled', false);
showMessageAlert(document.getElementById("thirdPartyCheckoutGenericErrorMessage").value)
}
});
}
function isValidWallet(uri = '') {
var walletValidation = {
"Amount": parseFloat($('#amount').val()),
"PartialAmountValue": parseFloatWithCulture($('#partialAmountWallet').val()),
"Token": $('#token').val(),
"MasterLocatorId": document.getElementById("masterLocatorId").value,
"Currency": $('#currency').val()
}
var urival = '/ValidateWallet';
$.ajax({
type: "POST",
url: urival,
data: JSON.stringify(walletValidation),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (response) {
if (handleSuccessPath(response)) {
var partialAmount = parseFloatWithCulture($('#partialAmount').val());
$('#partialAmount').val(partialAmount);
hideAlert();
$("#formProcessPayment").attr('action', '/procesar-pago');
$("#formProcessPayment").submit();
}
//else {
// $("#button-creditcard")[0].disabled = false;
// jQuery("input[name*='validatePayForms']").each(function () { $(this).disabled = false; })
// payLoader(false);
// document.body.scrollTop = 0; // For Safari
// document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
//}
},
error: function (response) {
handleFailurePath(response)
return false;
}
});
}
var handleSuccessPath = function (result) {
var isValid = true;
var brokenRules = result.data.BrokenRules;
$(".has-danger").removeClass(" has-danger");
$(".form-text").hide();
showMessageAlert("")
hideAlert();
if (brokenRules.length != 0) {
for (var i = 0; i < brokenRules.length; i++) {
try {
if (brokenRules[i].IsValid) {
$("#" + brokenRules[i].Name).parent().parent().removeClass(" has-danger");
$("#" + brokenRules[i].Name).parent().parent().find(".form-text").hide();
$("#" + brokenRules[i].Name).parent().parent().find(".form-text")[0].innerHTML = "";
}
else {
$("#" + brokenRules[i].Name).parent().parent().addClass(" has-danger");
$("#" + brokenRules[i].Name).parent().parent().find(".form-text").show();
if ($( $("#" + brokenRules[i].Name).parent().parent().find(".form-text")[0]).is('small')) {
$("#" + brokenRules[i].Name).parent().parent().find(".form-text")[0].innerText = brokenRules[i].Message.replace("", "").replace("", "");
}
else {
$("#" + brokenRules[i].Name).parent().parent().find(".form-text")[0].innerHTML = brokenRules[i].Message.replace("", "").replace("", "");
}
showValidationAlert();
isValid = false;
}
} catch { }
}
}
if (isValid) {
hideAlert();
} else {
jQuery("input[name*='validatePayForms']").each(function () { $(this).disabled = false; })
payLoader(false);
document.body.scrollTop = 0; // For Safari
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
}
return isValid;
};
var handleFailurePath = function (o) {
jQuery("input[name*='validatePayForms']").each(function () { $(this).disabled = false; })
showValidationAlert();
payLoader(false);
document.body.scrollTop = 0; // For Safari
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
};
function CreateEfectyTransaction(uri = '') {
payLoader(true);
$('.page-information-efecty, .page-error').hide();
var body = {
'masterLocatorId': $('#masterLocatorId').val(),
'type': 'efecty',
'amount': $("#pendingToPay").val()
};
var uridest = uri != '' ? uri : '/CreateCorrespondentPaymentsTransaction';
$.ajax({
type: 'POST',
url: uridest,
data: JSON.stringify(body),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (response) {
hideAlert();
if (response.ResponseCode == 0) {
var patt = new RegExp('(-|[0-9])+');
var res = patt.exec(response.ExpirationDate);
if (response.AgreementNumber && response.ClientReference && res && res[0]) {
var expDt = new Date(parseInt(res[0]));
var dtString = getDateTimeWithFormat(expDt);
$('#efecty-expiration').text(dtString);
$('#efecty-agreement').text(response.AgreementNumber);
$('#efecty-reference').text(response.ClientReference);
$('.page-information-efecty').show();
$('.page-error').hide();
}
else {
$('.page-information-efecty').hide();
$('.page-error').show();
}
payLoader(false);
} else {
$('.page-information-efecty').hide();
$('.page-error').show();
payLoader(false);
}
},
error: function (response) {
$('.page-information-efecty').hide();
$('.page-error').show();
payLoader(false);
}
});
}
function GetAcceptanceToken(uri = '') {
try {
payLoader(true);
var json = JSON.parse(document.getElementById("thirdPartyCheckoutsInformation").value);
$('#bancolombia').show();
$('.page-error').hide();
var body = {
'providerConfigId': json["Bancolombia"].ThirdPartyProviderConfigId
};
var uridest = uri != '' ? uri : '/GetAcceptanceToken';
$.ajax({
type: 'POST',
url: '/ThirdPartyCheckoutTransactions/GetAcceptanceToken',
data: JSON.stringify(body),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (response) {
hideAlert();
payLoader(false);
if (response.ProviderRequestInformation.acceptanceToken != null && response.ProviderRequestInformation.acceptanceToken != "") {
var aTyC = document.getElementById('aTyC');
aTyC.href = response.ProviderRequestInformation.permalink;
document.getElementById('AcceptanceToken').value = response.ProviderRequestInformation.acceptanceToken;
} else {
$('#bancolombia').hide();
$('.page-error').show();
}
},
error: function (response) {
$('#bancolombia').hide();
$('.page-error').show();
payLoader(false);
}
});
} catch (err) {
$('#bancolombia').hide();
$('.page-error').show();
payLoader(false);
}
}
function CreateBancolombiaTransaction(uri = '') {
try {
payLoader(true);
var json = JSON.parse(document.getElementById("thirdPartyCheckoutsInformation").value);
$('#bancolombia').show();
$('.page-error').hide();
var body = {
"MasterLocatorId": document.getElementById("masterLocatorId").value,
"Amount": parseFloat($('#amount').val()),
"PaymentProcessOptionType": "Bancolombia",
"Provider": "Bancolombia",
"SiteReturnUrl": json["Bancolombia"].SiteReturn,
"SpecificProviderDetails": "{'LegalIdType':'CC','AcceptanceToken':'" + document.getElementById("AcceptanceToken").value + "', 'LegalId':''}"
};
var uridest = uri != '' ? uri : '/CreateThirdPartyCheckoutTransaction';
$.ajax({
type: 'POST',
url: '/ThirdPartyCheckoutTransactions/CreateThirdPartyCheckoutTransaction',
data: JSON.stringify(body),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (response) {
hideAlert();
payLoader(false);
if (response.ProviderRequestInformation.redirectUrl != null) {
location.href = response.ProviderRequestInformation.redirectUrl;
} else {
$('#bancolombia').hide();
$('.page-error').show();
}
},
error: function (response) {
$('#bancolombia').hide();
$('.page-error').show();
payLoader(false);
}
});
} catch (err) {
$('#bancolombia').hide();
$('.page-error').show();
payLoader(false);
}
}
document.getElementById('chkConfirm').addEventListener('change', (event) => {
if (event.currentTarget.checked) {
document.getElementById("btnCompletarReservacion").disabled = false;
document.getElementById("btnCompletarReservacion").classList.remove('button--disabled');
} else {
document.getElementById("btnCompletarReservacion").disabled = true;
document.getElementById("btnCompletarReservacion").classList.add('button--disabled');
}
})